﻿using System.ComponentModel.DataAnnotations;
using System.Linq;
using CodeSaude.Domain.Interfaces.Repository;
using CodeSaude.Domain.Interfaces.Service;
using CodeSaude.Domain.Entities;
using CodeSaude.Domain.Services;

namespace CodeSaude.Domain.Services
{
    public class UsuarioService : BaseService<Usuario>, IUsuarioService
    {
        private readonly IUsuarioRepository _usuarioRepository;

        public UsuarioService(IUsuarioRepository usuarioRepository)
            : base(usuarioRepository)
        {
            _usuarioRepository = usuarioRepository;
        }

        public ValidationResult AdicionarUsuario(Usuario usuario)
        {
            //var resultadoValidacao = Usuario.EstaValidoParaCadastro();

            //if (resultadoValidacao.IsValid)
            Add(usuario);

            //return resultadoValidacao;
            return null;
        }

        public Usuario BuscarPorLogin(string login)
        {
            return _usuarioRepository.GetAll().FirstOrDefault(x => x.Login.Equals(login));
        }

        public void SaveChanges()
        {
            _usuarioRepository.SaveChanges();
        }
    }
}
